package com.example.mapper;

import com.example.pojo.Emp;
import com.example.pojo.EmpExpr;
import com.example.pojo.EmpQueryParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDate;
import java.util.List;

/**
 * 员工信息Mapper接口
 * @author wks
 */
@Mapper
public interface EmpMapper {

    @Select("SELECT count(*)  FROM emp left join dept on emp.dept_id=dept.id ;")
    public Long count();

    /**
     * 查询员工信息列表
     * @param start 起始位置
     * @param size 查询数量
     * @return
     */
    @Select("SELECT emp.*, dept.name as deptName FROM emp left join dept on emp.dept_id=dept.id " +
            "order by emp.update_time desc LIMIT #{start},#{size};")
    //分页查询可借助Pagehelper插件简化代码(需要导入依赖）
    public List<Emp> selectEmpAndDept(int start, int size);

    /**
     * 根据条件查询员工信息
     *
     * @return 员工信息列表
     */
    List<Emp> searchEmp(EmpQueryParam empQueryParam);

    /**
     * 插入员工信息
     * @param emp
     */
    void insertEmp(Emp emp);

    /**
     * 删除员工信息
     * @param IDs 员工ID数组
     */
     void deleteEmp(List<Integer> IDs);

    /**
     * 查询回显员工信息，用于编辑员工信息
     * @param id  员工ID
     * @return  员工信息
     */
     Emp searchEmpById(Integer id);

}
